#ifndef _PICKUP_H_
#define _PICKUP_H_

#ifdef _WIN32
#pragma once
#endif

/**
 * 09/03/12 - Steven Hartin - Original Creation
 */

#include <string>
#include <set>

#include "fmod.hpp"

#include "engine\meshcontainer.h"
#include "engine\mesh.h"
#include "engine\texturecontainer.h"
#include "engine\texture.h"
#include "engine\displayablecontainer.h"
#include "engine\displayable.h"
#include "engine\movable_entity.h"
#include "game\player.h"
#include "projectile.h"

#include "soundmanager.h"

using std::string;
using std::set;

class CBuff;

class CPickup : public CProjectile
{
public:
    CPickup(float fX, float fY, float fZ,
            const string &szTextureName,
            const string &szEntityName,
            const ENTITY_ID &nId=ENT_PICKUP_NONE
            );
    ~CPickup();

    void show();

    void addBuff(CBuff *pBuff);
    bool hasBuff(CBuff *pBuff);
    void removeBuff(CBuff *pBuff);

    virtual void collect(CPlayer *pPlayer);

    virtual void tick();
    
private:
    string m_szTexture;
    string m_szMesh;

    set<CBuff*> m_arrBuffs;

    bool bAppeared;
};

#endif